package day0318.Inner;

/**
 * @Author Stringzhua
 * @Date 2024/3/19 11:27
 * description:
 */
public class Outer {
    //静态变量
    private String name;
    //全局变量
    public final int AGE = 10;

    //普通代码块
    {
        System.out.println("我是outer的普通代码块");
    }

    //静态代码块
    static {
        System.out.println("我是outer的静态代码块");
    }

    //成员方法
    public void test1(){
        System.out.println("我是outer的成员方法");
    }
    //静态方法
    public static void test2(){
        System.out.println("我是outer的静态方法");
    }

    public class Inner{
        //静态变量
        private String name;
        //普通变量
        public final int AGE = 10;

        //普通代码块
        {
            System.out.println("我是inner的普通代码块");
        }

        //静态代码块不能在非static的Inner类中定义

        //成员方法
        public void test1(){
            System.out.println("我是inner的成员方法");
        }
        //静态方法方法不能在Inner类中定义

        //构造方法
        public void sayHello(String name) {
            System.out.println("局部变量name" + name);
            System.out.println("内部类成员变量name" + name);
            System.out.println("外部类成员变量name" + Outer.this.name);
            System.out.println(AGE);
            test1();
            Outer.this.test2();
        }
    }
}
